home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1993 July / InfoMagic USENET CD-ROM July 1993.ISO / sources / unix / volume8 / smail2 / part01 next >
Encoding:
Internet Message Format  |  1987-02-16  |  56.4 KB

  1. Subject:  v08i067:  Smail, release 2.3, Part01/05
  2. Newsgroups: mod.sources
  3. Approved: mirror!rs
  4.  
  5. Submitted by:  Larry Auton <lda@clyde.att.com>
  6. Mod.sources: Volume 8, Issue 67
  7. Archive-name: smail2/Part01
  8.  
  9. #! /bin/sh
  10. # This is a shell archive.  Remove anything before this line,
  11. # then unpack it by saving it in a file and typing "sh file".
  12. # If all goes well, you will see the message "End of shell archive."
  13. # Contents:  doc src doc/Contacts doc/Domains doc/Flow.Diagram
  14. #   doc/Install doc/Read.Me doc/Registry doc/Trouble doc/aliases.8
  15. #   doc/lcasep.8 doc/pathproc.8 src/Makefile
  16. # Wrapped by rs@mirror on Mon Feb  9 17:09:55 1987
  17. PATH=/bin:/usr/bin:/usr/ucb; export PATH
  18. if test ! -d 'doc' ; then
  19.     echo shar: creating directory "'doc'"
  20.     mkdir 'doc'
  21. fi
  22. if test ! -d 'src' ; then
  23.     echo shar: creating directory "'src'"
  24.     mkdir 'src'
  25. fi
  26. echo shar: extracting "'doc/Contacts'" '(713 characters)'
  27. if test -f 'doc/Contacts' ; then 
  28.   echo shar: will not over-write existing file "'doc/Contacts'"
  29. else
  30. sed 's/^X//' >doc/Contacts <<'@//E*O*F doc/Contacts//'
  31. X        Contact Information
  32. X
  33. XWe strongly encourage electronic mail for queries, updates, and
  34. Xapplications.  This cuts down on our costs, and we can pass those
  35. Xsavings along to you.  We currently do not have a telephone number
  36. Xfor queries, although we hope to have one in the near future.  If
  37. Xyou are unable to send and receive electronic mail, you will have
  38. Xto wait until we are prepared for telephone calls or postal mail.
  39. X
  40. XFor queries:    uucp-query@Stargate.COM        cbosgd!stargate!uucp-query
  41. X
  42. XFor updates:    uucpmap@Stargate.COM        cbosgd!stargate!uucpmap
  43. X
  44. XFor problems:    uucp-problem@Stargate.COM    cbosgd!stargate!uucp-problem
  45. X
  46. XTo register:    registry@Stargate.COM        cbosgd!stargate!registry
  47. X#
  48. X#@(#)Contacts    2.1 smail 12/14/86
  49. X#
  50. @//E*O*F doc/Contacts//
  51. if test 713 -ne "`wc -c <'doc/Contacts'`"; then
  52.     echo shar: error transmitting "'doc/Contacts'" '(should have been 713 characters)'
  53. fi
  54. fi # end of overwriting check
  55. echo shar: extracting "'doc/Domains'" '(8824 characters)'
  56. if test -f 'doc/Domains' ; then 
  57.   echo shar: will not over-write existing file "'doc/Domains'"
  58. else
  59. sed 's/^X//' >doc/Domains <<'@//E*O*F doc/Domains//'
  60. X           WHAT YOU NEED TO KNOW ABOUT PATHALIAS
  61. X       AND WHAT PATHALIAS NEEDS TO KNOW ABOUT YOU
  62. X                   or
  63. X           HOW PATHALIAS MAKES DOMAINS
  64. X
  65. X                Christopher Seiwald
  66. X
  67. XThis note describes the host connectivity data and domain data
  68. Xneeded to effect UUCP domain-style address routing.  This
  69. Xdescribes mostly the domain data, but also discusses how to
  70. Xdistribute connectivity data.  Look elsewhere for a discussion of
  71. Xdomains.
  72. X
  73. XBriefly, the connectivity data (what's in mod.map) connects
  74. Xall hosts in the UUCP network into one big directed graph, and
  75. Xthe domain data superimposes a domain tree onto that graph.
  76. XPathalias converts these two sets of data into a routing database
  77. Xwhich smail/rmail, a UUCP mail routing program, uses.
  78. X
  79. X1.  Domains and Gateways for UUCP
  80. X
  81. XFor domains in the UUCP zone, the top of a subdomain is all
  82. Xgateway hosts for that domain; the top of the UUCP zone will
  83. Xprobably be nearly a hundred hosts.  As a transition aid, we
  84. Xalso consider an individual host at the bottom of the domain tree a
  85. Xsubdomain "host.UUCP", with one gateway and no further subdomains.  
  86. X(We expect to phase this out eventually.)
  87. X
  88. XA gateway host for a domain must do four things:
  89. X    I)    Pass mail bound for that domain to the
  90. X        appropriate host.
  91. X    II)    Pass mail bound for outside that domain to a
  92. X        gateway in the parent domain.
  93. X    III)    Pass mail bound for a subdomain to a gateway of
  94. X        that subdomain.
  95. X    IV)    Recognise the domain!user address syntax.
  96. X
  97. Xsmail/rmail already provides (IV).  With the data described here,
  98. Xpushed through pathalias, smail/rmail can then provide (I)-(III).
  99. X
  100. X2.  The Zone Registry
  101. X
  102. XFor any sizeable zone, one gateway host supports the zone registry.
  103. XFor other zones, such as BITNET, CSNET, DDN, etc., registries are
  104. Xsupported, using conventions appropriate to those zones.  Contact
  105. Xelectronic mail addresses are supported for queries, and updates to
  106. Xconfiguration information may also be handled via mail.  In the UUCP
  107. Xzone, the id's "uucpmap@cbosgd.ATT.COM" and "domains@cbosgd.ATT.COM"
  108. Xserve to collect the connectivity and domain data, respectively, for
  109. Xthat zone.
  110. X
  111. XThe registry for a zone speaks for that zone, communicating
  112. Xchiefly with its peers, the registry of the parent domain, and
  113. Xthe registries of the subdomains.
  114. X
  115. X3.  Functions of Domain Data
  116. X
  117. XEach gateway for a domain must map the domain-style names into
  118. Xthe UUCP host names for all hosts of the domain.  This host name
  119. Xmapping provides (I) above.
  120. X
  121. XEach gateway for a domain knows a) at least one gateway for each
  122. Ximmediate subdomain, and b) at least one gateway host of the
  123. Xparent domain.  This provides (II) and (III) above.
  124. X
  125. XFor consistency across the gateways of a domain, each gateway for
  126. Xthe domain should know a) ALL gateways for each immediate
  127. Xsubdomain; and b) ALL gateways for the parent domain.  Pathalias
  128. Xwill pick the closest. In this way, one single database can
  129. Xdescribe the domain structure for all gateways on a domain,
  130. Xwithout variations for each gateway. 
  131. X
  132. XIn order to aid routing and avoid overloading the parent gateway,
  133. Xgateways should also know most gateways for peer level domains.
  134. XThis information is also provided by the map and used by pathalias.
  135. XWhen a new peer domain is created, traffic can be routed through the
  136. Xparent (which must be updated immediately) until information about
  137. Xthe peer can be propagated.
  138. X
  139. XAdditionally, a gateway could know about domains more than one
  140. Xlevel above or below it so that mail doesn't stop for address
  141. Xresolution at every gateway along its path.
  142. X
  143. X4.  Format of Domain Data
  144. X
  145. X4.1  Host Name List
  146. X
  147. XThe host name list aliases the domain style address of a host to
  148. Xthe UUCP host name.  The pathalias input format is:
  149. X
  150. X        uucp-name .domain-name[, ...]
  151. X
  152. XThe .UUCP suffix is implicit in the uucp-name (smail/rmail does
  153. Xthis), and is not needed.
  154. XUpper/lower case doesn't matter in a dotted domain name.
  155. XExamples:
  156. X    
  157. X        ihnp4 = .ATT.COM
  158. X        ucbvax = .Berkeley.EDU
  159. X        cbosgd = .osgd.cb.att.com, .cbosgd.att.com
  160. X
  161. XMight produce from pathalias:
  162. X
  163. X        ihnp4            mtxinu!ihnp4!%s
  164. X        .ihnp4.ATT.COM        mtxinu!ihnp4!%s
  165. X        ucbvax            ucbvax!%s
  166. X        .Berkeley.EDU        ucbvax!%s
  167. X        cbosgd            cbosgd!%s
  168. X        .osgd.cb.att.com    cbosgd!%s
  169. X        .cbosgd.att.com        cbosgd!%s
  170. X
  171. XA single host may have more than one domain style address; in
  172. Xfact, a host may be in several domains at once.  However, each
  173. Xhost must have a single primary location in the domain tree,
  174. Xand other addresses should be viewed as transition aids.  For
  175. Xexample, cbosgd might be known as cbosgd, cbosgd.UUCP,
  176. Xcbosgd.ATT.UUCP, cbosgd.btl.csnet, and cbosgd.ATT.COM, but
  177. Xthe primary name is the one in the organizational domain (COM)
  178. Xwhich applies to all networks, and the others are temporary
  179. Xnames for upward compatibility only.
  180. X
  181. X4.2  Domain Gateway List
  182. X
  183. XThe domain gateway list aliases the domain style address of a
  184. Xdomain to the UUCP host name of the closest gateway of that
  185. Xdomain.  This involves a trick in pathalias, and employs a
  186. Xextra network name domain-gw.  The pathalias input format is:
  187. X
  188. X        domain-gw .domain-name
  189. X
  190. XAgain, the .UUCP suffix is implicit in the uucp-name, and is
  191. Xnot needed.  
  192. XExamples:
  193. X
  194. X        decwrl .DEC.COM
  195. X        decuac .DEC.COM
  196. X
  197. X        cbosgd .ATT.COM
  198. X        clyde .ATT.COM
  199. X
  200. XMight generate from pathalias:
  201. X
  202. X        .DEC.COM    seismo!decuac!%s
  203. X        .ATT.COM    cbosgd!%s
  204. X
  205. XNote that pathalias chooses the closest host from inside the {}'s.
  206. XThe (DEAD)'s prevent pathalias from following along the mock network
  207. Xcalled "domain-gw".
  208. X
  209. X5.  Distribution of Domain Data
  210. X
  211. XA zone registry maintains a Host Name List (in the format of 4.1
  212. Xabove) of all hosts within its domain and a Domain Gateway List
  213. X(in the format of 4.2 above) of all gateways of the domain.
  214. X
  215. XUp: A registry collects the Domain Gateway List from the registry
  216. Xof each of its subdomains, and transmits to the registry of its
  217. Xparent domain its own Domain Gateway List and, if it chooses, the
  218. XDomain Gateway Lists of some or all of its subdomains.  Whether
  219. Xit includes lists from its subdomains depends on how important it
  220. Xconsiders them to the parent domain.
  221. X
  222. XDown: Similarly, a registry collects the Domain Gateway List from
  223. Xthe registry of its parent domain, and transmits to the registry
  224. Xof each of its subdomains its Domain Gateway List and the Domain
  225. XGateway List of its parent domain.  Note that the Domain Gateway
  226. XList of the parent domain may include lists from the parent's
  227. Xother subdomains.
  228. X
  229. XA registry may decide not to use the parent domain's Domain
  230. XGateway List or not to transmit it to its subdomains' registries.
  231. X(This should be done only with the consent of the subdomains.) In
  232. Xthis case, the registry must introduce a domain gateway alias for
  233. Xall top level domains, to ensure that all the mail gets delivered.
  234. X
  235. XAcross: a registry transmits to each of the gateways of its
  236. Xdomain its Host Name List, its Domain Gateway List, and collected
  237. XDomain Gateway Lists.  The registry also transmits to each normal
  238. Xhost (one gateway, no subdomains) of its domain its Domain
  239. XGateway List.
  240. X
  241. XTogether, "up," "down," and "across" insure that each gateway has
  242. Xthe Host Name List for its domain, and the Domain Gateway List of
  243. Xits own domain and at least its parent domain and subdomains.
  244. X"Up" and "across" will probably take place on demand by mail.
  245. X"Down" will probably be broadcast via netnews on a regular
  246. Xschedule.  In particular, the second level information for the UUCP
  247. Xzone (one entry per organization) and the complete top level domain
  248. Xinformation make up the postings to mod.map.
  249. X
  250. X6.  Distribution of Connectivity Data
  251. X
  252. XThe distribution of connectivity data will probably follow the
  253. Xpath of domain data: registries passing connectivity data up,
  254. Xdown, and across the domain tree, with the exception that the
  255. Xconnectivity within a third (or lower) level domain will be
  256. Xdiscouraged from leaving the domain, so the data the UUCP zone
  257. Xregistry distributes will include only the first and second
  258. Xlevel gateways.  Local information about internal subdomains and
  259. Xmachines of organizations should not be included in globally
  260. Xpublished information, but rather distributed locally as needed.
  261. X
  262. X7.  Various Notes
  263. X
  264. XThe following are examples of data that should be joined together
  265. Xas input to pathalias.
  266. X
  267. X    Parent Domain Gateway List
  268. X    Parent Connectivity Data
  269. X    This Level Domain Gateway List
  270. X    This Level Host Name List
  271. X    This Level Connectivity Data
  272. X    Collected Subdomains' Domain Gateway Lists
  273. X    Collected Subdomains' Connectivity Data
  274. X    Private Additions
  275. X    Alias for "this host"
  276. X
  277. XThis note does not describe the inclusion of private additions to
  278. Xthe domain or connectivity data.
  279. X
  280. XBecause domain names intermix with host names (and the .UUCP
  281. Xsuffix is implicit), you can address hosts known at your gateway
  282. Xas "uucp-host.UUCP".  We discourage this, because the address is 
  283. Xthen particular to the sender's location.
  284. X
  285. X
  286. X        /+\
  287. X5/1/85        +\    chris@cbosgd.att.com
  288. X        \+/
  289. X
  290. X[Updated 5/9/86 by Mark Horton.]
  291. X#
  292. X#@(#)Domains    2.1 smail 12/14/86
  293. X#
  294. @//E*O*F doc/Domains//
  295. if test 8824 -ne "`wc -c <'doc/Domains'`"; then
  296.     echo shar: error transmitting "'doc/Domains'" '(should have been 8824 characters)'
  297. fi
  298. fi # end of overwriting check
  299. echo shar: extracting "'doc/Flow.Diagram'" '(2664 characters)'
  300. if test -f 'doc/Flow.Diagram' ; then 
  301.   echo shar: will not over-write existing file "'doc/Flow.Diagram'"
  302. else
  303. sed 's/^X//' >doc/Flow.Diagram <<'@//E*O*F doc/Flow.Diagram//'
  304. Xvanilla 4.2BSD mail flow
  305. X
  306. XLOCAL   /bin/mail ----                           -- /bin/mail -- LOCAL
  307. X                      \                        / 
  308. X                       ----------- sendmail --
  309. X                      /          /             \
  310. XLOCAL   Mail ---------          /                -- uux -------- REMOTE
  311. X                               /
  312. XREMOTE  /bin/rmail ------------
  313. X
  314. X==========================
  315. X
  316. Xsmail 4.2BSD mail flow
  317. X
  318. XLOCAL   /bin/mail                          -- /bin/mail -- LOCAL
  319. X                 \                        /
  320. X                  ------------ sendmail --
  321. X                 /          /             \
  322. XLOCAL   Mail ---          /                -- /bin/smail -
  323. X                         /  (non-bang)                    \
  324. XREMOTE  /bin/rmail ------                                  \
  325. X                          \  (bang)                          \
  326. X                   ------------------------------------- uux REMOTE
  327. X
  328. X==========================
  329. X
  330. Xvanilla SVR2 mail flow
  331. X
  332. X        mail    is "/usr/src/cmd/mail.c"
  333. X        rmail    is linked to mail
  334. X
  335. XLOCAL    mail  ------------\              /--------------------- LOCAL
  336. X                   \            /
  337. XLOCAL    mailx ----> mail ---+----------+
  338. X                   /            \
  339. XREMOTE    rmail ------------/              \-- uux -------------- REMOTE
  340. X
  341. X==========================
  342. X
  343. XModified SVR2 mail flow using SENDMAIL
  344. X
  345. XDefinitions of changed/renamed programs
  346. X
  347. X        mail    is "svbinmail.c"
  348. X        lmail    is "/usr/src/cmd/mail.c"
  349. X        rmail    is linked to smail
  350. X
  351. XLOCAL    mail  ------------\                /-- lmail ---------- LOCAL
  352. X                   \              /
  353. X                            +--sendmail--+
  354. X                   /              \
  355. XLOCAL    mailx --- mail ---/                \-- smail -- uux --- REMOTE
  356. X
  357. X
  358. X                                               /-- lmail ------ LOCAL
  359. X                                              /
  360. X                                /--sendmail--+
  361. X                               /              \
  362. X                              /                \- smail - uux - REMOTE
  363. X                             / (domain | LOCAL)
  364. XREMOTE  rmail --------------+
  365. X                             \ (bang)
  366. X                              \
  367. X                               \------------------ uux -------- REMOTE
  368. X
  369. X==========================
  370. X
  371. XModified SVR2 mail flow without SENDMAIL
  372. X
  373. XLOCAL    mail  ------------\                /-- lmail ---------- LOCAL
  374. X                   \              /
  375. X                            +-- rmail ---+
  376. X                   /    /         \
  377. XLOCAL    mailx --- mail ---/    /           \-- uux ----------- REMOTE
  378. X                              /
  379. X                             /
  380. XREMOTE    --------------------+
  381. X
  382. X#
  383. X# @(#)Flow.Diagram    2.1 smail 12/14/86
  384. X#
  385. @//E*O*F doc/Flow.Diagram//
  386. if test 2664 -ne "`wc -c <'doc/Flow.Diagram'`"; then
  387.     echo shar: error transmitting "'doc/Flow.Diagram'" '(should have been 2664 characters)'
  388. fi
  389. fi # end of overwriting check
  390. echo shar: extracting "'doc/Install'" '(2180 characters)'
  391. if test -f 'doc/Install' ; then 
  392.   echo shar: will not over-write existing file "'doc/Install'"
  393. else
  394. sed 's/^X//' >doc/Install <<'@//E*O*F doc/Install//'
  395. XThere are three system types on which smail can be installed.
  396. X
  397. X    (1) Berkeley with sendmail
  398. X    (2) System V with sendmail
  399. X    (3) System V without sendmail
  400. X
  401. X    Note: if you have a System III or V7 derived system, you
  402. X    can probably treat it like (3).  We have not tested smail
  403. X    on such a system.
  404. X
  405. XThe installation will vary slightly for each system type.
  406. X
  407. XFor all systems you first have to create a 'paths' database.
  408. XSee paths(8) for details on the file's format.  Then
  409. Xcopy it to /usr/lib/uucp/paths.
  410. X
  411. XNext, edit "defs.h" to configure smail to suit your situation.
  412. X
  413. XHere are step by step installation instructions for each system type.
  414. X
  415. X(1) For a berkeley system with sendmail, the steps are:
  416. X
  417. X    $ make
  418. X
  419. X    $ cp smail /bin/smail
  420. X
  421. X    $ sh make.cf.sh
  422. X        <answer the questions it asks>
  423. X
  424. X    $ mv /usr/lib/sendmail.cf /usr/lib/OLDsendmail.cf
  425. X
  426. X    $ cp sendmail.cf /usr/lib/sendmail.cf
  427. X
  428. X    $ /usr/lib/sendmail -bz
  429. X
  430. X    $ mv /bin/rmail /bin/OLDrmail
  431. X
  432. X    $ ln /bin/smail /bin/rmail
  433. X
  434. X(2) For a System V system with sendmail, the steps are:
  435. X
  436. X    $ make
  437. X
  438. X    $ cp smail /bin/smail
  439. X
  440. X    $ ln /bin/mail /bin/lmail
  441. X
  442. X    $ sh make.cf.sh
  443. X        <answer the questions it asks>
  444. X
  445. X    $ mv /usr/lib/sendmail.cf /usr/lib/OLDsendmail.cf
  446. X
  447. X    $ cp sendmail.cf /usr/lib/sendmail.cf
  448. X
  449. X    $ /usr/lib/sendmail -bz
  450. X
  451. X    $ rm /bin/mail # (Remember, you still have it in /bin/lmail.)
  452. X
  453. X    $ mv svbinmail /bin/mail
  454. X
  455. X    $ mv /bin/rmail /bin/OLDrmail
  456. X
  457. X    $ ln /bin/smail /bin/rmail
  458. X
  459. X    Note: some implementations of sendmail don't work when the 'U'
  460. X    flag is set in the definition of the local mailer (a line that
  461. X    begins with "Mlocal" in the generated sendmail.cf).  If you try
  462. X    to send mail from a local user to a local user, a message comes
  463. X    out that says "No '!' in UUCP! (user)" - and the mail fails.
  464. X    If this happens take the 'U' flag out of the sendmail.cf.
  465. X
  466. X    [ the >'s are secondary prompts from the shell,
  467. X      and ^M is 'carat' 'M', not 'control-M' ]
  468. X
  469. X    $ ed sendmail.cf <<!
  470. X    > /^Mlocal/s/SU/S/
  471. X    > w
  472. X    > q
  473. X    > !
  474. X
  475. X(3) For a System V system without sendmail, the steps are:
  476. X
  477. X    $ make
  478. X
  479. X    $ cp smail /bin/smail
  480. X
  481. X    $ mv /bin/mail /bin/lmail
  482. X
  483. X    $ mv svbinmail /bin/mail
  484. X
  485. X    $ mv /bin/rmail /bin/OLDrmail
  486. X
  487. X    $ ln /bin/smail /bin/rmail
  488. X
  489. XYou're done.
  490. X
  491. X#
  492. X# @(#)Install    2.1 smail 12/14/86
  493. X#
  494. @//E*O*F doc/Install//
  495. if test 2180 -ne "`wc -c <'doc/Install'`"; then
  496.     echo shar: error transmitting "'doc/Install'" '(should have been 2180 characters)'
  497. fi
  498. fi # end of overwriting check
  499. echo shar: extracting "'doc/Read.Me'" '(7522 characters)'
  500. if test -f 'doc/Read.Me' ; then 
  501.   echo shar: will not over-write existing file "'doc/Read.Me'"
  502. else
  503. sed 's/^X//' >doc/Read.Me <<'@//E*O*F doc/Read.Me//'
  504. X        READ ME - Updated 2/6/87
  505. X
  506. XWhat smail does:
  507. X
  508. X  smail is capable of handling UUCP syntax (bang paths, bang
  509. X  domains, and at domains are supported) mail transportation
  510. X  over UUCP/uux/rmail channels.  It will support machines that
  511. X  only have UUCP connections, and machines with UUCP links to
  512. X  the outside world plus a small number of local machines that
  513. X  are reached via SMTP.  The domain intelligence is embedded
  514. X  in the smail database (e.g. the pathalias output), not the
  515. X  sendmail.cf file, so if you have a fancier domain structure
  516. X  that involves SMTP or anything other than uux in the domain
  517. X  structure, you'll want to modify the sendmail.cf file here or
  518. X  merge pieces of the enclosed sendmail.cf into your own.
  519. X
  520. X  smail runs under 4.2BSD and System V, as a back end to sendmail;
  521. X  and under System V without sendmail.  It also replaces rmail, which
  522. X  becomes a link to smail.  In a sendmail environment, smail depends on
  523. X  sendmail to crack the headers, as smail just deals with the envelope.
  524. X  smail makes your host capable of using the INTERNET definition in the
  525. X  Usenet software.
  526. X
  527. X  Features of smail include:
  528. X
  529. X  (1) Using pathalias data to choose the best route to your destination.
  530. X  (2) Handling of user@domain, domain!user, and host!user syntax.
  531. X  (3) Generation of domain!user syntax to be forwarded by other systems.
  532. X  (4) Logging of traffic through your machine, by sender, recipient, and
  533. X      size of message, so you can, track use and detect abuse of your
  534. X      machine.
  535. X  (5) Mail being forwarded through your machine to another uux link is
  536. X      passed from rmail directly to uux, so there's less overhead on
  537. X      your machine (sendmail stays out of the loop.)
  538. X  (6) Sendmail-like alias capability for hosts without sendmail.
  539. X  (7) Generation of RFC822 required headers for locally generated mail.
  540. X  (8) Robust delivery scheme that reroutes only if stated path is inaccessible.
  541. X  (8) Mail that is undeliverable is returned to sender.
  542. X  (9) Simplicity.
  543. X
  544. XPrerequisites:
  545. X
  546. X  A copy of a recent posting of pathalias.  (The one posted
  547. X  by Peter Honeyman in January 1986 is recommended.)
  548. X
  549. X  A current copy of the UUCP map, or at least a copy of the
  550. X  appropriate part of it that you're interested in.
  551. X
  552. X  A properly registered domain name for your organization, such
  553. X  as ATT.COM.  (It is possible to run smail using a domain name
  554. X  under .UUCP, but since this can't be officially registered,
  555. X  it is appropriate only for testing.)
  556. X
  557. X  You can get pathalias from the mod.sources Usenet archive (contact
  558. X  sources-request@mirror.TMC.COM or mirror!sources-request)
  559. X
  560. X  You can get a UUCP map each month from Usenet newsgroup mod.map.
  561. X  The UUCP map is quite large (currently about 2MB) so please don't ask
  562. X  to have a copy mailed to you - get a copy from a nearby Usenet site.
  563. X
  564. X  You can get a domain name by joining the UUCP Zone.  There are
  565. X  low membership dues for this, and a registration process that
  566. X  will take 2-8 weeks.  This Read.Me file may be out of date by
  567. X  the time you read it, so we ask you to contact us for current
  568. X  dues rates and procedures.  Contact uucp-query@Stargate.COM or
  569. X  cbosgd!stargate!uucp-query and ask for the UUCP Zone information
  570. X  packet.  (If you already belong to a network such as CSNET, DDN,
  571. X  or BITNET, your organization may already have a domain name.  If
  572. X  you are also on UUCP, it is recommended that you also join the
  573. X  UUCP Zone at the lower rate for organizations whose primary
  574. X  affiliation is with another network.  See the file "Registry"
  575. X  for more information.
  576. X
  577. XOverall structure:
  578. X
  579. X  smail is installed in /bin/smail with a link in /bin/rmail.  Uuxqt
  580. X  calls rmail, which either forwards the message on to the next hop
  581. X  directly or, on a sysetm with sendmail, calls sendmail.  sendmail
  582. X  may decide the message should be delivered by UUCP, and invoke smail,
  583. X  which will look up a route and invoke uux.  (Note that the choice
  584. X  about when to invoke sendmail and when to process a message directly
  585. X  can be configured in smail.)
  586. X
  587. X  smail uses a database which is generated from pathalias.  You take the
  588. X  current UUCP map, add some local information and topology data (to tell
  589. X  it about the domain tree) and run pathalias.  The result is sorted and
  590. X  installed in /usr/lib/uucp/paths.  There is no hashing done on this
  591. X  file - when smail looks up a name it uses a binary search.
  592. X
  593. XInstallation Instructions:
  594. X
  595. X  Save your /bin/rmail and /usr/lib/sendmail.cf somewhere safe, in case
  596. X  of disaster.  If you already have a /bin/smail or /usr/lib/uucp/paths,
  597. X  you might want to save them too.
  598. X
  599. X  If you have the logging turned on, you should arrange that something
  600. X  out of crontab erases the logs regularly, or your disk may fill up.
  601. X  One line per message is created in /usr/lib/uucp/mail.log.  If you
  602. X  log full messages, they get put in /tmp/mail.log.  (Note that full
  603. X  message logging is considered anti-social if you use it to snoop;
  604. X  it is recommended that this feature only be used if you are running
  605. X  software that you don't completely trust, so you can reproduce any
  606. X  problem that might turn up.)
  607. X
  608. X  Now see the file Install for step by step instructions.
  609. X
  610. XConfiguration considerations:
  611. X
  612. X  You'll note two configuration options in defs.h: HANDLE and ROUTING.
  613. X  These control which sorts of addresses smail/rmail will handle, and
  614. X  which type of routing they will do.  The HANDLE define only affects
  615. X  rmail, since smail sets it implicitly.  In any case, we recommend
  616. X  that you leave HANDLE alone, unless you are making major changes.
  617. X
  618. X  ROUTING has three choices: JUSTDOMAIN, ALWAYS, and REROUTE.  rmail
  619. X  will run as JUSTDOMAIN, the defs.h default.  This means rmail will
  620. X  only apply routing if it sees "rmail user@domain", and will just call
  621. X  uux if it sees "rmail host!user".  (If the uux fails, it will call
  622. X  smail -r, which will apply ALWAYS routing to try to get the mail
  623. X  there anyway.  If the ALWAYS routing fails, then REROUTE routing is
  624. X  applied.  This has the advantage of being low overhead on your
  625. X  system, not second guessing a route someone else asked for, and still
  626. X  recovering nicely from the mistakes of another system.  Your host
  627. X  becomes a "smart host" that can get mail anywhere.)
  628. X
  629. X  Many people will note huge paths going through their machine.  These
  630. X  paths are generated by replies to netnews messages, and tend to be 10
  631. X  or 20 hops long - far longer than necessary.  If you are a bit aggressive,
  632. X  you can change -r to -R, which will cause such failed mail to be rerouted,
  633. X  thus, mail to a!b!c!d!e!f!g!user will look up a route to g, and send the
  634. X  mail to route!g!user.  (If it can't find g, it will try f, then e, and
  635. X  so on until it finds someone it recognizes.)  If you are REALLY aggressive,
  636. X  you can change ROUTING to REROUTE in defs.h, to get the same effect for
  637. X  ALL rmail being passed through your machine.  This may help cut phone
  638. X  bills, but it has some disadvantages.  It can lengthen a path sometimes,
  639. X  e.g. mail to tektronix!user might turn into ihnp4!tektronix!user if your
  640. X  routing database says mail to tektronix goes through ihnp4.  It makes it
  641. X  hard to route around a dead host, or to redirect traffic from a mailing
  642. X  list to several different directions.  It may also make mail go a different
  643. X  path than what your user thought it was, and it affects other hosts that
  644. X  route mail through you if you set ROUTING to REROUTE in defs.h.  So only
  645. X  do this if you know what you are doing, and are willing to live with the
  646. X  disadvantages.
  647. X
  648. X#
  649. X#@(#)Read.Me    2.1 smail 12/14/86
  650. X#
  651. @//E*O*F doc/Read.Me//
  652. if test 7522 -ne "`wc -c <'doc/Read.Me'`"; then
  653.     echo shar: error transmitting "'doc/Read.Me'" '(should have been 7522 characters)'
  654. fi
  655. fi # end of overwriting check
  656. echo shar: extracting "'doc/Registry'" '(11417 characters)'
  657. if test -f 'doc/Registry' ; then 
  658.   echo shar: will not over-write existing file "'doc/Registry'"
  659. else
  660. sed 's/^X//' >doc/Registry <<'@//E*O*F doc/Registry//'
  661. X            UUCP Zone Registry
  662. X                 2/6/87
  663. X
  664. XTo use smail, or other software supporting domain addresses, you need
  665. Xto have a domain name registered in the domain tree.  This name must be
  666. Xunique in the world, and must be registered with the appropriate
  667. Xregistry.  Your domain must also have a forwarder from DDN (also
  668. Xcalled ARPANET and MILNET).
  669. X
  670. XIf your primary network affiliation is with CSNET, BITNET, or DDN,
  671. Xyour organization may already have a domain name.  If you are not
  672. Xon one of these networks, you can join the UUCP Zone to get your
  673. Xorganization name registered.
  674. X
  675. X        History and Structure
  676. X
  677. XThe exact structure of the domain tree is evolving.  In 1984, the top
  678. Xlevels were network names (ARPA, CSNET, BITNET, UUCP, and so on) and
  679. Xthe second levels were hosts.  The problem with this structure is that
  680. Xmachines connected to several networks have several names, and it's
  681. Xdifficult for users to predict the address of someone without knowing
  682. Xtheir network connections.
  683. X
  684. XIn 1986, the domain tree in the USA has three major top level domains:
  685. XCOM for companies, EDU for educational institutions, and GOV for
  686. Xgovernment entities.  Three other top level names exist: MIL, NET, ORG,
  687. Xbut are somewhat specialized.  For the most part, countries other than
  688. Xthe USA are using the ISO 3166 2 letter abbreviation for their country
  689. Xas a top level.
  690. X
  691. XExamples include US for USA, AU for Australia, JP for Japan, NL for
  692. XNetherlands.  Abbreviations that are not ISO 3166 include CAN for
  693. XCanada and and UK for the United Kingdom.
  694. X
  695. XOne way of looking at the domain tree is that the top level is always
  696. Xthe country, where COM, EDU, and GOV are three pretend "countries" all
  697. Xlocated in the USA.  (This isn't quite strictly true, since some Canadian
  698. Xorganizations are registering under EDU or COM, intending to also register
  699. Xunder CAN later.)
  700. X
  701. XThe second level is generally the name of the organization, using the
  702. Xshortest possible abbreviation that is clear and unique, thus ATT, DEC,
  703. XIBM, HP, etc.  The choice of exact name is up to the organization, and
  704. Xlonger names, such as Berkeley.EDU or Tektronix.COM are perfectly
  705. Xacceptable.  Just remember that people must type the name, as well as
  706. Xsee it displayed.
  707. X
  708. XNot all countries use the second level for the organization.  In
  709. Xparticular, Australia and Britain have set up second level domains
  710. XAC.UK and OZ.AU for their academic communities, and put the
  711. Xorganization at the third level.
  712. X
  713. XThe third and subsequent levels, if used, should be organizational
  714. Xunits within the organization.  Try to keep the number of levels to a
  715. Xminimum, since people have to type the names.  More than four total
  716. Xlevels (country, org, ou1, and ou2) should rarely be needed.  The
  717. Xactual organizational units to be used are up to you, for example, they
  718. Xmight be departments, or they might be machine names.  For example,
  719. XStargate has names like Base.Stargate.COM, where COM means a company,
  720. XStargate is the organization (company) name, and Base is the name of
  721. Xthe machine within Stargate.  A larger example:  AT&T is using names
  722. Xlike cbpavo.MIS.OH.ATT.COM, where COM means AT&T is a company, ATT is
  723. Xthe organization, OH means Ohio, MIS stands for Medical Information
  724. XSystems, and cbpavo is a computer in the MIS project.
  725. X
  726. XA "zone" is a registry of domains kept by a particular organization.  A
  727. Xzone registry is "authoritative", that is, the master copy of the
  728. Xregistry is kept by the zone organization, and this copy is, by
  729. Xdefinition, always up-to-date.  Copies of this registry may be
  730. Xdistributed to other places and kept in caches, but these caches are
  731. Xnot authoritative because they may be out of date.  An authoritative
  732. Xanswer is required for certain decisions, such as "this mail cannot be
  733. Xdelivered because there is no such domain", or "the name you have
  734. Xchosen is available and is now assigned uniquely to you."
  735. X
  736. XIn the USA, there are currently four zones: DDN (formerly called the
  737. XARPANET), CSNET, BITNET, and UUCP.  These zones all share the top level
  738. Xdomains COM, EDU, GOV, etc.  The top level domains are administered by
  739. Xthe DDN (Defense Data Network) NIC (Network Information Center) at SRI
  740. X(SRI, Inc, formerly Stanford Research Institute, in Menlo Park, CA.)
  741. XThe CSNET, BITNET, and UUCP registries serve as a go-between to avoid
  742. Xswamping the NIC with individual registrations.  It is possible for an
  743. Xorganization to be members of more than one of these networks, in which
  744. Xcase they register with each network, using the same name on all
  745. Xnetworks.
  746. X
  747. XThe UUCP Project keeps a registry of members of the UUCP Zone.  This
  748. Xregistry is different than the UUCP map, although the registry is posted
  749. Xwith the UUCP map.  The UUCP Zone registry consists only of organizations
  750. Xwhich are members of the UUCP Zone.  To become a member, it is
  751. Xnecessary to explicitly join, just as one joins CSNET or BITNET.  Just
  752. Xbeing reachable via a bang path does not imply membership, nor does
  753. Xappearance in the UUCP map.
  754. X
  755. XTo join the UUCP Zone, it is necessary to apply for membership.  This
  756. Xinvolves paying low annual membership dues to the project, deciding how to
  757. Xstructure your domain and where to put it into the global domain tree,
  758. Xinstalling software such as smail, finding a forwarder, and doing some
  759. Xelectronic paperwork.  Please contact us at one of these addresses and
  760. Xask for the membership kit; it will contain up-to-date information on
  761. Xjoining, including the fee structure, information about forwarders,
  762. Xinformation about 3rd level domain "parks", and forms to fill out.
  763. X
  764. XSee the "Contact Information" below for instructions to contact us;
  765. Xplease use the "query" address for the initial query.
  766. X
  767. X        Organizational Registry
  768. X
  769. XIf you are registering your organization in the UUCP zone, you are in
  770. Xeffect creating another zone registry for your organization.  Any
  771. Xsubdomains of your organizational domain must be registered with you.
  772. X(You need not keep us informed of all your subdomains, just the gateways.)
  773. X
  774. XFor the time being, unless you are ready to start organizing the machines
  775. Xin your organization, don't worry about this.  You can just set things up
  776. Xto handle your one machine (or more if you like).  Just keep in mind that
  777. Xyour machine is but one machine in your organization, so you should be
  778. Xplanning to have an address like fred@compsci.BigCorp.COM (where "fred" is
  779. Xa login name on machine "compsci" owned by organization "BigCorp") rather
  780. Xthan fred@BigCorp.COM.
  781. X
  782. XFor example, if you are the first host in the University of North Dakota to
  783. Xjoin, you are creating a subdomain UND.EDU (for example.)  Your host might
  784. Xhave a name like undvax.UND.EDU.  When other machines are joined in later,
  785. Xthey will also register under UND.EDU, for example, cs3b20.UND.EDU.
  786. XAll subdomains of UND (this may mean all hosts in the UND domain) are
  787. Xregistered with the UND.EDU registry.  Unless you create a campus organization
  788. Xspecifically to run this registry, this means you are the UND.EDU registry.
  789. XIt is your job to keep track of everybody in the registry, hand out names
  790. Xfor subdomains, make sure there are no duplicates (you have to make sure there
  791. Xaren't two machines called cs3b2.UND.EDU, for example) and know who to
  792. Xcontact if a problem arises.  You have created the UND Zone, which is
  793. Xsimilar to the UUCP Zone, but one level further down in the heirarchy.
  794. X
  795. XAt some point, you may decide that you want more layers of subdomains in
  796. Xyour zone.  For example, if the CS, Math, and Stat departments at UND all
  797. Xwant to manage their own zones, you might use names like vax.CS.UND.EDU,
  798. X3b20.Math.UND.EDU, and so on.  The UND Zone has delegated its naming
  799. Xauthority to the CS Zone, the Math Zone, and so on.  The root delegates
  800. Xto COM, COM delegates to UUCP, UUCP delegates to UND, UND delegates to CS.
  801. X
  802. XNote that the names are given in upper or mixed case, but the exact
  803. Xcase doesn't matter, since the software ignores it.  We recommend that
  804. Xyou choose your capitalization to look nice when printed.
  805. X
  806. XNote also that "vax", "3b20", and the like are terrible host names,
  807. Xbecause sooner or later you'll have more than one vax, or more than
  808. Xone 3b20, and the names will be confusing.  We recommend organizational
  809. Xnames, based on the department or project the machine is used for.
  810. XOf course, in order to keep the names reasonably short and to avoid
  811. Xduplicating names in the heirarchy, some compromise will be needed.
  812. XFor example, csvax.CS.UND.EDU is redundant, but RISC.CS.UND.EDU might
  813. Xbe a good name for the computer used by the RISC project in the CS
  814. Xdepartment.
  815. X
  816. X        Notes:
  817. X
  818. XOrganizations are encouraged to eventually support two kinds of electronic
  819. Xmail addresses:
  820. X
  821. X(1) Login name on machine: a string which is understood on a particular
  822. X    machine, combined with a fully qualified domain name of a machine.
  823. X    The string is often, although not always, a login name.
  824. X    Example:
  825. X    mrh@cbosgd.ATT.COM
  826. X
  827. X(2) Personal name in organization: a string which is the name of a person,
  828. X    understood by all gateway machines.
  829. X    Example:
  830. X    Mark.R.Horton@ATT.COM
  831. X    This allows mail to be sent without knowing the full address
  832. X    of the recipient, only their name and company.  Implementations
  833. X    should be as forgiving as possible of errors in the personal name.
  834. X    For example, if possible, as many of the following as possible
  835. X    should be accepted:
  836. X    mark.r.horton@att.com    (ignore case)
  837. X    m.r.horton@ATT.COM    (accept initials)
  838. X    mark.horton@ATT.COM    (don't require initials)
  839. X    mark.randolph.horton@ATT.COM
  840. X    m.horton@ATT.COM    (if not ambiguous)
  841. X    horton@ATT.COM        (if not ambiguous)
  842. X    mark.horton.sr@ATT.COM    (allow generational qualifier)
  843. X
  844. XHowever, it's perfectly fine to just support just one style.
  845. XSince the login name style (1) is easy to support, you may prefer to
  846. Xjust handle that one, especially at first.  Style (1) is by far the
  847. Xmost commonly used method as this is written.
  848. X
  849. XPlease note that you should support both RFC 976 and the documents
  850. Xit refers to, in particular RFC 822 and RFC 920.  This means, for
  851. Xexample:
  852. X
  853. X(a) The name "postmaster" on all machines visible to the outside
  854. X    should be forwarded to the technical contact.  This can be
  855. X    easily done with an alias in /usr/lib/aliases, if your site
  856. X    runs sendmail or smail 2.0.  Please be sure to also support
  857. X    Postmaster, PostMaster, and POSTMASTER, if you use sendmail.
  858. X
  859. X(b) Your machine should not alter valid RFC 822 headers, such as
  860. X    From:, of mail it generates or forwards.  Many machines running
  861. X    sendmail have a bug which adds uucpname! to the front of such
  862. X    addresses.  Installing smail will fix the bug, because mail
  863. X    passed through the machine is not passed through sendmail.
  864. X    We hope to make a fix to sendmail available, also, at a
  865. X    later date.
  866. X
  867. X        Contact Information
  868. X
  869. XWe strongly encourage electronic mail for queries, updates, and
  870. Xapplications.  This cuts down on our costs, and we can pass those
  871. Xsavings along to you.  We currently do not have a telephone number
  872. Xfor queries, although we hope to have one in the near future.  If
  873. Xyou are unable to send and receive electronic mail, you will have
  874. Xto wait until we are prepared for telephone calls or postal mail.
  875. X
  876. XFor queries:    uucp-query@Stargate.COM        cbosgd!stargate!uucp-query
  877. X
  878. XFor updates:    uucpmap@Stargate.COM        cbosgd!stargate!uucpmap
  879. X
  880. XFor problems:    uucp-problem@Stargate.COM    cbosgd!stargate!uucp-problem
  881. X
  882. XTo register:    registry@Stargate.COM        cbosgd!stargate!registry
  883. X
  884. XUUCP host "stargate" can also be reached via uiucdcs or cbatt.
  885. X#
  886. X#@(#)Registry    2.1 smail 12/14/86
  887. X#
  888. @//E*O*F doc/Registry//
  889. if test 11417 -ne "`wc -c <'doc/Registry'`"; then
  890.     echo shar: error transmitting "'doc/Registry'" '(should have been 11417 characters)'
  891. fi
  892. fi # end of overwriting check
  893. echo shar: extracting "'doc/Trouble'" '(10836 characters)'
  894. if test -f 'doc/Trouble' ; then 
  895.   echo shar: will not over-write existing file "'doc/Trouble'"
  896. else
  897. sed 's/^X//' >doc/Trouble <<'@//E*O*F doc/Trouble//'
  898. X        Common Problems and Recommended Solutions
  899. X
  900. X            Updated 12/14/86
  901. X
  902. X(1) The configuration shell script smail.cf.sh insists that
  903. XI give it another domain that I'm authoritative for, but we
  904. Xdon't have anything to give it.
  905. X
  906. X    This is a common problem for small companies that only
  907. X    have one machine, or for organizations that are originally
  908. X    registering in COM/EDU/GOV and were never known in UUCP.
  909. X
  910. X    The shell script is somewhat simple - it really should let
  911. X    you just hit RETURN here.  But you can go ahead and follow
  912. X    the examples anyway, and it shouldn't hurt anything.
  913. X
  914. X    For example, if you're FOOBAR.COM:
  915. X    Enter This Host's Name:
  916. X    foobar
  917. X    Enter This Host's Official Domain:
  918. X    COM
  919. X    Enter Any Equivalent Domain Classes:
  920. X    foobar
  921. X    Enter Any Domains For Which This Host Is An Authority:
  922. X    foobar.UUCP
  923. X    The first two lines mean that you are user@foobar.COM (the two
  924. X    entries strung together.)  The second one means you also
  925. X    understand what to do with user@foobar, which isn't really
  926. X    legal but may tend to crop up from time to time.  The last
  927. X    means you also understand user@foobar.UUCP, which is important
  928. X    for upward compatibility since that's commonly generated by
  929. X    other systems, by netnews software, and the like.
  930. X
  931. X(2) I can send mail to others OK, but sometimes when they send mail
  932. Xto me or I send mail to others on my machine, it doesn't work.
  933. XIt says "couldn't resolve myhost.mydom!user".
  934. X
  935. X    This is probably a configuration problem.  Look in defs.h to see
  936. X    how you have MYDOM set.  It comes distributed as ".UUCP", but
  937. X    you probably want to change this to the answer to the "Enter This
  938. X    Host's Official Domain" question above.  If you don't run sendmail,
  939. X    this is the only way smail has of knowing your host name.
  940. X    (We really should have smail read this in from a file, for future
  941. X    3rd party binary distributions, but so far we haven't.)
  942. X
  943. X(3) Mail isn't getting through sometimes, and since I just installed
  944. Xthis new software, I suspect it.  Or, I see munged header lines, and
  945. XI don't know who is doing it.
  946. X
  947. X    If you aren't sure where the mail is getting dropped (remember, UUCP
  948. X    is an unreliable transport mechanism, so lots of things could be going
  949. X    wrong) here's a trick we sometimes use to find out what's going on.
  950. X    mv /bin/rmail /bin/realrmail
  951. X
  952. X    cat > /bin/rmail
  953. X    #! /bin/sh
  954. X    umask 0
  955. X    LF=/usr/spool/uucp/rmail.log
  956. X    cat > /tmp/rm$$
  957. X    echo " " >> $LF
  958. X    date >> $LF
  959. X    echo rmail $* >> $LF
  960. X    cat /tmp/rm$$ >> $LF
  961. X    realrmail $* < /tmp/rm$$
  962. X    st=$?
  963. X    rm /tmp/rm$$
  964. X    exit $st
  965. X    ^D
  966. X    chmod 755 /bin/rmail
  967. X    
  968. X    This will keep a very verbose log of all incoming traffic into your
  969. X    machine in LF, including the text as it arrived on your machine, and
  970. X    the arguments to rmail.  You can tell whether it was broken when it
  971. X    arrived or if you broke it, and you can reproduce the mail by editing
  972. X    out the message (into, say, /tmp/msg) and running
  973. X    realrmail args < /tmp/msg
  974. X    using the args as they appear in the file.
  975. X
  976. X    Some words of warning.  (a) These files can get big very fast if you
  977. X    process much traffic through your machine, so be sure to clean them
  978. X    out often.  (b) This saves everything, including the message body.
  979. X    It is unethical to browse such logs unless a specific problem has
  980. X    arisen which requires you to check the log.  This is one reason why
  981. X    it's kept in /usr/spool/uucp, if you have a hidden directory on your
  982. X    system that's even better.  (c) This extra set of file copies adds
  983. X    overhead to your machine, so don't run this unless you suspect you
  984. X    have a problem, and then take it out when you trust things again.
  985. X
  986. X    There is a RECORD option in the code which is similar, but this
  987. X    option saves the mail at a later stage, so you lose some information
  988. X    about how it arrived on your machine.
  989. X
  990. X(4) I don't understand how to set up subdomain of my domain.
  991. X
  992. X    There are two ways to do this.  The easiest is just by recognizing
  993. X    the subdomain host by their UUCP name.  If you are the gateway for
  994. X    domain FOO.COM, then any mail through your sendmail to bar.FOO.COM
  995. X    or to bar.myname.FOO.COM (where "myname" is your hosts's name) will
  996. X    be treated as if it were bar.UUCP, so if the name "bar" is in your
  997. X    path file, you're all set.  The disadvantage to this is that if you
  998. X    want to create a subdomain whose name conflicts with a public name,
  999. X    it won't work.  If you want to disable this code, look for "mydom"
  1000. X    in the sendmail.cf.
  1001. X
  1002. X    A perhaps cleaner way is to explicitly put the subdomains into the
  1003. X    pathalias database.  Thus, if you have a.FOO.COM, b.FOO.COM, p.b.FOO.COM,
  1004. X    x.myname.FOO.COM, and y.myname.FOO.COM, you could include this in
  1005. X    your local pathalias input:
  1006. X    aname    .a.FOO.COM
  1007. X    bname    .b.FOO.COM
  1008. X    pname    .p.b.FOO.COM
  1009. X    xname    .x.myname.FOO.COM
  1010. X    yname    .y.myname.FOO.COM
  1011. X    In each case, "aname" is the UUCP name for host "a", etc.  This
  1012. X    sort of says "aname and a.FOO.COM are the same host."  This
  1013. X    description says that you have subdomains x and y under your host,
  1014. X    that there are peer subdomains a and b, and that you know about
  1015. X    a subdomain of b called p.  Other subdomains of a and b that
  1016. X    are not mentioned here will be routed through aname or bname as
  1017. X    gateways.  The only reason to mention p here would be if we have
  1018. X    a direct link and want to avoid routing through bname.  If you
  1019. X    do this, you have less strict requirements about name uniqueness:
  1020. X    aname, bname, pname, xname, and yname must still be unique, and
  1021. X    a.FOO.COM, b.FOO.COM, p.b.FOO.COM, x.myname.FOO.COM, and
  1022. X    y.myname.FOO.COM must also be unique (ignoring case, so that
  1023. X    two different hosts a.foo.com and A.FOO.COM conflict.)  In
  1024. X    particular, this means that if you have a local host with a name
  1025. X    that isn't unique, say "bilbo", you can safely create a subdomain
  1026. X    "bilbo.myname.FOO.COM", but you'll still have a problem if the
  1027. X    UUCP name of the host is "bilbo".  You may be able to make this
  1028. X    partly work using the pathalias "private" notation, but we advise
  1029. X    you to change the UUCP name to something unique.
  1030. X
  1031. X(5) When another host in my domain sends mail to a third host in my
  1032. X    domain, it seems to get routed through the gateway even though
  1033. X    my host knows how to route directly.
  1034. X
  1035. X    For example, suppose you have gateway cbosgd.att.com, and other
  1036. X    machines foo.att.com and bar.att.com.  Smail is installed on all
  1037. X    three machines.  But when a user on foo sends to user@bar.att.com,
  1038. X    the mail is routed via cbosgd.  Sometimes, you may even see this
  1039. X    happen for mail on foo to foo.
  1040. X
  1041. X    There are two solutions.  The first is to make sure that foo knows
  1042. X    that bar.att.com is the same as bar (where "bar" is the uucp name.)
  1043. X    Include lines in the local pathalias input files like
  1044. X    foo    .foo.att.com
  1045. X    bar    .bar.att.com
  1046. X    cbosgd    .cbosgd.att.com
  1047. X    
  1048. X    The second solution is to declare foo to be a gateway for your
  1049. X    subdomain, e.g.
  1050. X    foo    .att.com
  1051. X    This will handle all mail to att.com locally on foo instead of
  1052. X    routing it through cbosgd.  (It also means you'd better be sure
  1053. X    to keep the routing tables on foo as up to date as on cbosgd.)
  1054. X
  1055. X    The first method is strongly recommended for everyone.  The second
  1056. X    is appropriate only for well maintained and supported hosts.
  1057. X    Either should handle the problem.
  1058. X
  1059. X(6) Mail to some domains isn't working.  For example, if I type
  1060. X
  1061. X    smail -d USER@LLL-MFE.ARPA
  1062. X    
  1063. X    It says:
  1064. X
  1065. X    resolve: parse address 'USER@LLL-MFE.ARPA' = 'USER' @ 'LLL-MFE.ARPA' (DOMAIN)
  1066. X    getpath: looking for '.LLL-MFE.ARPA'
  1067. X    getpath: looking for 'LLL-MFE.ARPA'
  1068. X    getpath: looking for '.ARPA'
  1069. X    getpath: looking for 'ARPA'
  1070. X    route 'LLL-MFE.ARPA' failed
  1071. X    resolve failed 'USER@LLL-MFE.ARPA' = 'USER' @ 'LLL-MFE.ARPA' (DOMAIN)
  1072. X
  1073. X    There is a .arpa line in the pathalias database that looks like:
  1074. X
  1075. X    .arpa    ihnp4!akgua!gatech!seismo!%s
  1076. X
  1077. X    Chances are the pathalias database is out of order.  Remember
  1078. X    to run it through "sort -f" before storing it.
  1079. X
  1080. X(7) People on the ARPANET are complaining about us sending them mail
  1081. X    from FOO.COM when we aren't on the ARPANET.
  1082. X
  1083. X    Politely ask them to upgrade their mail system to support MX
  1084. X    records, as required by RFC's 973 and 974.
  1085. X
  1086. X    If you have a COM, EDU, or GOV name confirmed by the UUCP Zone, and
  1087. X    you have a working forwarder, you have an officially allocated name
  1088. X    which you are entitled to use.
  1089. X
  1090. X    However, do understand that the old way of handling things on the
  1091. X    ARPANET was to open a connection directly to the destination host
  1092. X    and send the mail via SMTP.  Many hosts assume that a name ending
  1093. X    in ARPA, COM, etc implies being on the ARPANET, and handle mail
  1094. X    this way.  (4.3BSD still does this.)  The above RFC's, approved in
  1095. X    January 1986, say that mailers are supposed to check for an MX
  1096. X    record, which says that mail for one domain should be delivered to
  1097. X    a different host to be forwarded.  As of December, 1986, many
  1098. X    ARPANET hosts still have mailers that understand MX, and the
  1099. X    standard UNIX and TOPS 20 mailers don't support it.  So politely
  1100. X    urge them to find whoever supports their mailer and get it upgraded
  1101. X    to support MX.  (Berkeley has a version of sendmail that supports
  1102. X    it, but it isn't in 4.3BSD.  An MX supporting sendmail can be found
  1103. X    on ucbarpa.Berkeley.EDU by logging in as anonymous and retrieving
  1104. X    pub/4.3/sendmail.MX.tar.  The file is 1.26MB.  The latest MMDF also
  1105. X    supports it.)  In the meantime, tell whoever is trying to send you
  1106. X    mail that mail to user@foo.COM (for example) can be sent to
  1107. X    foo.COM!user@seismo.CSS.GOV.
  1108. X
  1109. X(8) My System V machine with sendmail produces the error message
  1110. X    "No ! in UUCP!" when I send local mail.
  1111. X
  1112. X    This is a bug in older versions of sendmail.  If you have the
  1113. X    source to sendmail, make the following change to deliver.c to
  1114. X    fix the problem:
  1115. X
  1116. X
  1117. X    *** deliver.c.stock
  1118. X    --- deliver.c
  1119. X    ***************
  1120. X    *** 1016,1022
  1121. X              expand("$g", buf, &buf[sizeof buf - 1], CurEnv);
  1122. X              bang = index(buf, '!');
  1123. X              if (bang == NULL)
  1124. X    !             syserr("No ! in UUCP! (%s)", buf);
  1125. X              else
  1126. X              {
  1127. X                  *bang++ = '\0';
  1128. X
  1129. X    --- 1016,1022 -----
  1130. X              expand("$g", buf, &buf[sizeof buf - 1], CurEnv);
  1131. X              bang = index(buf, '!');
  1132. X              if (bang == NULL)
  1133. X    !             return;
  1134. X              else
  1135. X              {
  1136. X                  *bang++ = '\0';
  1137. X
  1138. X    If you do not have source to sendmail, a workaround is to edit
  1139. X    /usr/lib/sendmail.cf (or template.cf before you run make.cf.sh.)
  1140. X    Find the line beginning "Mlocal", and remove the "U" on that line.
  1141. X    This has an undesirable side effect, in that the From_ line will
  1142. X    be in a format not understood by mailx, but since most mailx replies
  1143. X    use the From: line, this should be a minor problem.
  1144. X
  1145. X#
  1146. X# @(#)Trouble    2.1 smail 12/16/86
  1147. X# [Edited by MRH 12/14/86]
  1148. X#
  1149. @//E*O*F doc/Trouble//
  1150. if test 10836 -ne "`wc -c <'doc/Trouble'`"; then
  1151.     echo shar: error transmitting "'doc/Trouble'" '(should have been 10836 characters)'
  1152. fi
  1153. fi # end of overwriting check
  1154. echo shar: extracting "'doc/aliases.8'" '(4445 characters)'
  1155. if test -f 'doc/aliases.8' ; then 
  1156.   echo shar: will not over-write existing file "'doc/aliases.8'"
  1157. else
  1158. sed 's/^X//' >doc/aliases.8 <<'@//E*O*F doc/aliases.8//'
  1159. X.TH ALIASES 8
  1160. X.tr ~
  1161. X.SH NAME
  1162. Xaliases \- alias file for smail
  1163. X.SH DESCRIPTION
  1164. XThis file is used by
  1165. X.I smail
  1166. Xonly if
  1167. X.I SENDMAIL
  1168. Xis
  1169. X.I not defined.
  1170. XIf
  1171. X.I SENDMAIL
  1172. Xis defined, then
  1173. X.I sendmail
  1174. Xdoes all of the aliasing for the host.
  1175. X.PP
  1176. XThis file contains a list of aliases for
  1177. Xlocal users or mailing lists.
  1178. XThe format of each alias is
  1179. X.sp
  1180. X.ce
  1181. Xalias_name~recip_name1~recip_name2~...
  1182. X.sp
  1183. XAn attempt has been made to remain compatible with
  1184. X.I sendmail
  1185. Xalias file format, though the syntax is much more format free than
  1186. X.I sendmail.
  1187. XAs distributed,
  1188. X.I case differences are ignored
  1189. Xwhen comparing names to aliases.
  1190. XOnly alias names which resolve to the local host are recognized, and are
  1191. Xstored in their local form.
  1192. XLines which start with a white~space are continuation lines.
  1193. XParenthesised strings are taken as comments (no nesting),
  1194. Xas is anything after a '#' (as in
  1195. X.IR /bin/sh ).
  1196. XHere are some examples:
  1197. X.sp
  1198. X.nf
  1199. X# this whole line is a comment
  1200. X#
  1201. X# These are equivalent definitions
  1202. X
  1203. Xalias_name      recip1 recip2 recip3
  1204. X
  1205. Xalias_name:     recip1, recip2 , recip3
  1206. X
  1207. Xalias_name      recip1 recip2
  1208. X                recip3
  1209. X
  1210. Xalias_name      recip1  # Recip1's name
  1211. X                recip2  # Recip2's name
  1212. X                recip3  # Recip3's name
  1213. X
  1214. Xalias_name      recip1 (Recp1's name) recip2 (Recp2's name)
  1215. X                recip3 (Recp3's name)
  1216. X
  1217. Xalias_name@thishost     recip1 recip2 recip3
  1218. X
  1219. Xalias_name@thisdomain   recip1 recip2 recip3
  1220. X
  1221. Xthishost!alias_name     recip1 recip2 recip3
  1222. X
  1223. Xthisdomain!alias_name   recip1 recip2 recip3
  1224. X.fi
  1225. X.PP
  1226. XMailing lists are easily handled by two forms of file inclusion.
  1227. XThe first form is the same as is supported by
  1228. X.I sendmail
  1229. X.sp
  1230. X.ce
  1231. Xmylist    :include:/usr/lib/ml/mylist
  1232. X.sp
  1233. XIn this example, each entry in
  1234. X.I /usr/lib/ml/mylist
  1235. Xwould be added to the alias for
  1236. X.I mylist.
  1237. XThe second form is unique to
  1238. X.I smail.
  1239. XIt allows the
  1240. X.I aliases
  1241. Xfile to include other
  1242. X.I aliases
  1243. Xfiles.
  1244. X.sp
  1245. X.ce
  1246. X:include:/usr/lib/ml/more-aliases
  1247. X.sp
  1248. XThis would include the file
  1249. X.I /usr/lib/ml/more-aliases
  1250. Xas a regular alias file.
  1251. XThis makes it easier to maintain groups of aliases that
  1252. Xchange frequently, such as the list of netnews moderators.
  1253. X.PP
  1254. XAll aliases are recursive, so care
  1255. Xmust be taken in their definition.
  1256. X.I smail
  1257. Xaliasing attempts to prevent infinite loops, and to
  1258. Xdo what was intended by the user.  For example, the alias:
  1259. X.sp
  1260. X.ce
  1261. Xmylogin~mypc!mylogin~mylogin
  1262. X.sp
  1263. XExpands to
  1264. X.sp
  1265. X.ce
  1266. Xmypc!mylogin mylogin
  1267. X.sp
  1268. Xeven though the second occurrence of
  1269. X.I mylogin
  1270. Xmatches the alias name.
  1271. X.sp
  1272. XBoth forms of file inclusion are recursive, too,
  1273. Xso watch out for nesting include files.  They
  1274. Xmay lead to infinite loops.
  1275. X.PP
  1276. XWhile the cost of parsing an alias file is usually negligible,
  1277. Xit's wise to take savings anywhere savings
  1278. Xcan be found.  Therefore, it's worth mentioning
  1279. X.IR smail 's
  1280. Xparsing strategy.
  1281. X.I smail
  1282. Xwill try to get by with doing as little work
  1283. Xas possible when aliasing.  If on a particular
  1284. Xinvocation of
  1285. X.I smail,
  1286. Xnone of the recipent addresses are local,
  1287. X(i.e., not potential aliases)
  1288. Xthen the
  1289. X.I aliases
  1290. Xfile won't even be read.  Similarly,
  1291. Xwhen an
  1292. X.I aliases
  1293. Xfile is read, it does not expand any of the :include: files
  1294. Xuntil they are referenced.  Thus, in the alias (above) for
  1295. X.I mylist,
  1296. Xthe file
  1297. X.I :include:/usr/lib/ml/mylist
  1298. Xwould not be opened and read (parsed) unless
  1299. Xmail was sent to
  1300. X.I mylist.
  1301. XWise use of :include: files can greatly
  1302. Xincrease the efficiency of the alias utility.
  1303. XIt's not clear exactly where the
  1304. X.I break-even
  1305. Xpoint is when deciding to use an  :include: file in an alias,
  1306. Xversus having all of the recipents listed on the line;
  1307. Xbut if a mailing list is large (whatever that means)
  1308. Xit is wise to use the :include: feature to save on
  1309. Xparsing costs.  Note that this discussion only applies to the
  1310. Xfirst form of file inclusion, since reading an
  1311. X.I aliases
  1312. Xfile constitutes a reference to :include: files of the second form.
  1313. X.PP
  1314. XThere is another form of aliasing which works with the alias capability.
  1315. XThis is called
  1316. X.I per user forwarding.
  1317. XFor a given user name, if there is no alias for the user
  1318. Xthen, if the file
  1319. X.I ~user/.forward
  1320. Xexists, then its contents will be treated as an alias for
  1321. Xthe user.  The syntax is the same as that of the
  1322. Xrecipient lists in the alias file described above.
  1323. X.PP
  1324. XOne difference between
  1325. X.I smail
  1326. Xand
  1327. X.I sendmail
  1328. Xis that
  1329. X.I smail
  1330. Xdoesn't handle stuff like mail to files
  1331. Xor command execution.
  1332. X.SH SEE ALSO
  1333. Xsmail(8), paths(8), pathproc(8)
  1334. X.SH VERSION
  1335. X@(#)aliases.8    2.2 smail 1/28/87
  1336. @//E*O*F doc/aliases.8//
  1337. if test 4445 -ne "`wc -c <'doc/aliases.8'`"; then
  1338.     echo shar: error transmitting "'doc/aliases.8'" '(should have been 4445 characters)'
  1339. fi
  1340. fi # end of overwriting check
  1341. echo shar: extracting "'doc/lcasep.8'" '(741 characters)'
  1342. if test -f 'doc/lcasep.8' ; then 
  1343.   echo shar: will not over-write existing file "'doc/lcasep.8'"
  1344. else
  1345. sed 's/^X//' >doc/lcasep.8 <<'@//E*O*F doc/lcasep.8//'
  1346. X.TH LCASEP 8
  1347. X.tr ~
  1348. X.SH NAME
  1349. Xlcasep \- convert first field to lower case
  1350. X.SH SYNOPSIS
  1351. X.B lcasep
  1352. X[ -f infile ] [ -o outfile ]
  1353. X.SH DESCRIPTION
  1354. X.I Lcasep
  1355. Xconverts all upper case characters
  1356. Xin the first field of each input line to lower case
  1357. Xand writes the line to its output.  By default,
  1358. X.I lcasep
  1359. Xreads from the standard input and writes to the standard output.
  1360. XFields are delimited by a tab (ascii~0x9) character.
  1361. XIt is used in preparation for sorting
  1362. X.IR smail "'s"
  1363. X.I paths
  1364. Xdatabase.  There is a bug in
  1365. X.I sort -f
  1366. Xthat causes non-alphanumeric keys to be sorted incorrectly.
  1367. XConversion before sorting avoids this bug.
  1368. X.SH SEE ALSO
  1369. Xpathalias - by Peter Honeyman
  1370. X.br
  1371. Xsmail(8), paths(8), pathproc(8)
  1372. X.SH VERSION
  1373. X@(#)lcasep.8    2.1 smail 12/14/86
  1374. @//E*O*F doc/lcasep.8//
  1375. if test 741 -ne "`wc -c <'doc/lcasep.8'`"; then
  1376.     echo shar: error transmitting "'doc/lcasep.8'" '(should have been 741 characters)'
  1377. fi
  1378. fi # end of overwriting check
  1379. echo shar: extracting "'doc/pathproc.8'" '(891 characters)'
  1380. if test -f 'doc/pathproc.8' ; then 
  1381.   echo shar: will not over-write existing file "'doc/pathproc.8'"
  1382. else
  1383. sed 's/^X//' >doc/pathproc.8 <<'@//E*O*F doc/pathproc.8//'
  1384. X.TH PATHPROC 8
  1385. X.SH NAME
  1386. Xpathproc \- pathalias post\-processor for smail routing database
  1387. X.SH DESCRIPTION
  1388. X.I Pathproc
  1389. Xtakes lines of the form
  1390. X.sp
  1391. X.ce
  1392. X\fIroute_cost    key    route\fP
  1393. X.sp
  1394. Xas produced by
  1395. X.I pathalias -c
  1396. Xand converts it to the form
  1397. X.sp
  1398. X.ce
  1399. X\fI key    route    cost\fP
  1400. X.sp
  1401. Xas described in
  1402. X.IR paths (8).
  1403. XOn the input, the
  1404. X.I route_cost
  1405. Xis
  1406. X.IR pathalias "'s"
  1407. Xtotal cost for the route.
  1408. XOn the output, the
  1409. X.I cost
  1410. Xis the cost for the
  1411. X.I first segment
  1412. Xof the route.
  1413. XThis represents the cost, to the local host,
  1414. Xof passing the mail to its neighbor.
  1415. X.PP
  1416. XThe output is sorted by
  1417. X.I key
  1418. Xin ascending order.
  1419. X.SH EXAMPLE
  1420. XHere's an example of how you might use
  1421. X.I pathproc:
  1422. X.sp
  1423. X.in+3
  1424. Xpathalias -c \fImap_files\fP | pathproc > newpaths
  1425. X.br
  1426. Xmv newpaths /usr/lib/uucp/paths
  1427. X.in
  1428. X.sp
  1429. X.SH SEE ALSO
  1430. Xpathalias - by Peter Honeyman
  1431. X.br
  1432. Xsmail(8), lcasep(8), paths(8)
  1433. X.SH VERSION
  1434. X@(#)pathproc.8    2.1 smail 12/14/86
  1435. @//E*O*F doc/pathproc.8//
  1436. if test 891 -ne "`wc -c <'doc/pathproc.8'`"; then
  1437.     echo shar: error transmitting "'doc/pathproc.8'" '(should have been 891 characters)'
  1438. fi
  1439. fi # end of overwriting check
  1440. echo shar: extracting "'src/Makefile'" '(743 characters)'
  1441. if test -f 'src/Makefile' ; then 
  1442.   echo shar: will not over-write existing file "'src/Makefile'"
  1443. else
  1444. sed 's/^X//' >src/Makefile <<'@//E*O*F src/Makefile//'
  1445. X# Makefile for smail (not a installation makefile)
  1446. X
  1447. X# @(#)Makefile    2.2 (smail) 1/16/87
  1448. X
  1449. XCFLAGS    =    -O
  1450. X#
  1451. X# System V Release 2.0 sites can use -lmalloc for a faster malloc
  1452. X#
  1453. X#LIBS    =    -lmalloc
  1454. X
  1455. XOBJECTS =    main.o map.o resolve.o deliver.o misc.o alias.o headers.o getpath.o getopt.o
  1456. X
  1457. Xall: smail svbinmail lcasep pathproc
  1458. X
  1459. Xsmail:        $(OBJECTS)
  1460. X        cc $(CFLAGS) $(OBJECTS) -o smail $(LIBS)
  1461. X
  1462. X$(OBJECTS):    defs.h
  1463. X        cc $(CFLAGS) -c $<
  1464. X
  1465. Xsvbinmail:    svbinmail.c defs.h
  1466. X        cc $(CFLAGS) svbinmail.c -o svbinmail
  1467. X
  1468. Xlcasep:        lcasep.c
  1469. X        cc $(CFLAGS) lcasep.c -o lcasep
  1470. X
  1471. Xpathproc: pathproc.sh
  1472. X    cp pathproc.sh pathproc
  1473. X    chmod 755 pathproc
  1474. X
  1475. Xinstall: all
  1476. X    @echo read doc/Install
  1477. X
  1478. Xclean:
  1479. X    rm -f *.o *.ln a.out core
  1480. X
  1481. Xclobber: clean
  1482. X    rm -f smail rmail lcasep pathproc svbinmail
  1483. @//E*O*F src/Makefile//
  1484. if test 743 -ne "`wc -c <'src/Makefile'`"; then
  1485.     echo shar: error transmitting "'src/Makefile'" '(should have been 743 characters)'
  1486. fi
  1487. fi # end of overwriting check
  1488. echo shar: "End of shell archive."
  1489. exit 0
  1490.